RAIS  3.2
C:/Projekte/RAIS/dataaccesslayer/RADEVSearch.cs
Go to the documentation of this file.
00001 using System;
00002 using System.Collections.Generic;
00003 using System.Text;
00004 using System.Data;
00005 using System.Data.SqlClient;
00006 using RAIS.Common.RADEVSearchClasses;
00007 namespace RAIS.DataAccessLayer
00008 {
00012     public static class RADEVSearch
00013     {
00014         public static Dictionary<int, string> GetValueList(string functionName)
00015         {
00016             return GetValueListFromQuery("SELECT * FROM " + functionName);
00017         }
00018 
00019         public static Dictionary<int, string> GetValueListFromQuery(string queryString)
00020         {
00021             Dictionary<int, string> result = new Dictionary<int, string>();
00022             using (SqlConnection sqlConnection = new SqlConnection(DataAccessUtilities.ConnectionString))
00023             {
00024                 sqlConnection.Open();
00025 
00026                 using (SqlCommand sqlCommand = new SqlCommand(queryString, sqlConnection))
00027                 {
00028                     using (SqlDataReader sqlReader = sqlCommand.ExecuteReader())
00029                     {
00030                         while (sqlReader.Read())
00031                         {
00032                             string name = sqlReader["Name"] is DBNull ? "" : sqlReader["Name"].ToString();
00033                             result.Add((int)sqlReader["ID"], name);
00034                         }
00035                     }
00036                 }
00037             }
00038             return result;
00039         }
00040 
00041         public static List<RADEVRow> GetRadevSearchResult(string searchSQLString)
00042         {
00043             Dictionary<string, RADEVRow> retList = new Dictionary<string, RADEVRow>();
00044 
00045             using (SqlConnection sqlConnection = new SqlConnection(DataAccessUtilities.ConnectionString))
00046             {
00047                 sqlConnection.Open();
00048 
00049                 using (SqlCommand sqlCommand = new SqlCommand(searchSQLString, sqlConnection))
00050                 {
00051                     using (SqlDataReader sqlReader = sqlCommand.ExecuteReader())
00052                     {
00053                         while (sqlReader.Read())
00054                         {
00055                             string IAEAEventID = sqlReader["IAEAEventID"] is DBNull ? "" : sqlReader["IAEAEventID"].ToString();
00056                             string Fasilityname = sqlReader["Fasilityname"] is DBNull ? "" : sqlReader["Fasilityname"].ToString();
00057                             string EventDate = sqlReader["EventDate"] is DBNull ? "" : sqlReader["EventDate"].ToString();
00058                             string Radiationsource = sqlReader["Radiationsource"] is DBNull ? "" : sqlReader["Radiationsource"].ToString();
00059                             string SpecificPractice = sqlReader["SpecificPractice"] is DBNull ? "" : sqlReader["SpecificPractice"].ToString();
00060                             string ReportStatus = sqlReader["ReportStatus"] is DBNull ? "" : sqlReader["ReportStatus"].ToString();
00061 
00062                             if (!retList.ContainsKey(IAEAEventID))
00063                                 retList.Add(IAEAEventID, new RADEVRow((int)sqlReader["ID"], IAEAEventID, Fasilityname, EventDate, Radiationsource, 
00064                                                         SpecificPractice, ReportStatus));
00065                             else
00066                                 retList[IAEAEventID].AddRADEV(SpecificPractice, ReportStatus);
00067                         }
00068                     }
00069                 }
00070             }
00071             List<RADEVRow> list = new List<RADEVRow>();
00072             foreach (RADEVRow row in retList.Values)
00073                 list.Add(row);
00074             return list;
00075         }
00076 
00077         public static void SaveSearchCriterias(string name, string searchString)
00078         {
00079             using (SqlConnection sqlConnection = new SqlConnection(DataAccessUtilities.ConnectionString))
00080             {
00081                 sqlConnection.Open();
00082 
00083                 using (SqlCommand sqlCommand = new SqlCommand(string.Format("INSERT INTO RADEVSearchCriterias([Name],[QueryString]) VALUES('{0}','{1}')", name, searchString.Replace("'","''")), sqlConnection))
00084                 {
00085                     sqlCommand.ExecuteNonQuery();
00086                 }
00087             }
00088         }
00089 
00090         public static string GetSavedSearch(int id)
00091         {
00092             using (SqlConnection sqlConnection = new SqlConnection(DataAccessUtilities.ConnectionString))
00093             {
00094                 sqlConnection.Open();
00095 
00096                 using (SqlCommand sqlCommand = new SqlCommand(string.Format("SELECT QueryString FROM RADEVSearchCriterias WHERE [ID]={0}", id), sqlConnection))
00097                 {
00098                     return (string)sqlCommand.ExecuteScalar();
00099                 }
00100             }
00101         }
00102     }
00103 }